ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース6.0
B25773-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

Oracleエラーの解釈および管理

TimesTenからのSQL問合せの結果Oracleで発生するエラーは、Oracle Call Interface(OCI)を介してOracleによってレポートされます。通常、OCIのエラーおよび警告は、TimesTenでは5107エラーとして次の形式でレポートされます。

5107: Oracle(OCI) Oracle_ErrorID in OCI_Call: Oracle Error Message

ここで、Oracle_ErrorIDはOracleエラー・メッセージのID、OCI_Callはエラーが発生したOCIルーチン、Oracle Error MessageはOracleによって生成されたエラー関する記述です。

例3.30

ORA-01466などのOracleデータベース・サーバーのメッセージは、次のようにレポートされる場合があります。

5107: Oracle(OCI) error in OCIStmtExecute():
ORA-01466: unable to read data - table definition has changed rc = -1
The command failed.

PLS-00201などのOracle PL/SQLメッセージは、次のようにレポートされる場合があります。

5107: Oracle(OCI) error in OCIStmtExecute():
ORA-06550: line 1, column 18:
PLS-00201: identifier 'DBMS_FLASHBACK' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored rc = -1

詳細は、『Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド』のCache Connect to Oracleのトラブルシューティングに関する章を参照してください。

AWTキャッシュ・グループ使用時のエラーの検出

AWTキャッシュ・グループを使用している場合、Oracleデータベースで発生したエラーおよび警告はアプリケーションに通知されません。かわりに、変更をOracleに適用している間に発生したすべての挿入、更新およびエラー削除は、データ・ストア・ディレクトリにあるエラー・ファイルに次の名前で保存されます。

DatastoreName.awterr

awterrファイルのエラー・メッセージの書式は、レプリケーションでの競合およびトランザクション・エラーに対して生成されるエラー・メッセージとほぼ同じです(例3.31を参照)。

注意: Oracleによって生成されたエラーおよび警告は、TimesTenでコミットが行われた後に、awterrエラー・ファイルでレポートされる場合があります。
例3.31

キャッシュ・グループに対して行われた更新がOracleに伝播されるときに制約違反が発生した場合、awterrファイル内のエラーは次のようになります。

Error occurred 14:48:55 on 03-22-2004
Datastore: c:\temp\cgDSN
Oracle Id: system1
Transmitting name: cgDSN
Error message:
TT5210: Oracle unique constraint violation error in OCIStmtExecute(): ORA-00001: unique constraint (GUSER.SYS_C00357240) violated rc = -1 -- file "bdbTblH.c", lineno 1205, procedure "ttBDbStmtForce()"
TT5025: Commit failure in Oracle. Transaction must be rolled back in TimesTen. -- file "bdbConnect.c", lineno 885, procedure "ttBDbXact()"
Operation that caused the error:
Insert into table TESTUSER.T1 <9,1000>
Failed transaction:
Insert into table TESTUSER.T1 <9, 1000>
End of failed transaction
例3.32

TimesTenによってOracleに配置されたオブジェクトが削除された場合、awterrファイル内のエラーは次のようになります。

May 04 18:12:36 HOST1 TimesTen Replication 6.0[2136]:
[Err ] DEFAULT:meta.c(639):
TT16062: Failed to compile command:
select p.commit_timestamp, p.commit_seqnum, p.protocol from owner1.TT_02_REPPEERS p where p.replication_name = :rname and p.replication_owner = :rowner and p.tt_store_id = :oid and p.subscriber_id = :sid
May 04 18:12:36 HOST1 TimesTen Replication 6.0[2136]:
[Err ] DEFAULT:meta.c(639):
TT5221: TT5221: Oracle syntax error in OCIStmtExecute():
ORA-00942: table or view does not exist rc = -1 -- file "bdbStmt.c", lineno 1041, procedure "getOraOutTypesNLengths()"

この例では、TT_02_REPPEERS表は存在しません。このエラーをリカバリするには、次の手順を実行します。

  1. レプリケーション・エージェントを停止します。
  2. (オプション)キャッシュ・グループの現在のイメージを使用して、Oracleをキャッシュ・グループと再度同期化します。
  3. キャッシュ・グループを削除し、再作成します。
  4. レプリケーション・エージェントを再起動します。